package com.dds.system.domain.app;

import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;

import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.util.Date;
import java.util.Map;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.dds.common.annotation.Excel;
import com.dds.common.core.domain.BaseEntity;

/**
 * APP中的消息定义对象 app_message_define
 *
 * @author gaolianjie
 * @date 2021-04-13
 */
@Data
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@NoArgsConstructor(staticName = "of", force = true)
public class AppMessageDefine extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * $column.columnComment
     */
    private Long messageId;

    /**
     * 消息标题
     */
    @Excel(name = "消息标题")
    private String messageTitle;

    /**
     * 消息内容
     */
    private String messageDesc;

    /**
     * 消息时间
     */
    private Date messageDate;

    /**
     * 消息来源
     */
    private String messageFrom;

    /**
     * 发送对象的选取范围
     */
    @Excel(name = "发送对象的选取范围")
    private String messageSendCondition;

    /**
     * 是否进行推送,0只站内信,1加推送
     */
    private String messageIsPush;

    /**
     * 消息内容
     */
    private String messageContent;

    /**
     * 站内消息分类 2系统消息 3业务消息
     */
    @Excel(name = "站内消息分类 2系统消息 3业务消息")
    private Integer messageCate;

    /**
     * 通知跳转类型 1付款通知 2URL跳转；3内部页跳转
     */
    @Excel(name = "通知跳转类型 1付款通知 2URL跳转；3内部页跳转 ")
    private Integer messageType;

    /**
     * 通知跳转对应的值：URL 跳转时，为具体地址；内部页跳转时，为 APP 内部地址
     */
    private String messageTypeValue;

    /**
     * 消息图片链接
     */
    private String messageImgUrl;

    /**
     * 最后发送时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "最后发送时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date lastSendDate;

    /**
     * 合计发送数
     */
    @Excel(name = "合计发送数")
    private Long totalSendCount;
}
